// 微信分享配置
import HaloTokenConfig from '@/config/token.config.js'
import {jsonToUrlParams2} from '@/utils/url.params.js'

export const haloWxShareMixin = {
    computed: {
        haloWxShareData() {
            const configs = this.$tm.vx.getters().getConfigs;
            return configs?.shareConfig || {}
        }
    },
    //#ifdef MP-WEIXIN
    onShareAppMessage(res) {
        return {
            ...this.haloWxShareData,
            success: res => {
            }
        }
    },
    //#endif
    /* 分享到微信好友 */
    onShareAppMessage(res) {
        const promise = new Promise(resolve => {
            setTimeout(() => {
                resolve({
                    title: this.haloWxShareData.title,
                    path: this.haloWxShareData.path,
                })
            }, 2000)
        })
        return {
            title: this.haloWxShareData.title,
            path: '',
            promise
        }
    },

    // 分享到朋友圈-这里封装不够，在页面还要声明一次，否则是拿不到参数的，被分享者在朋友圈打开链接是空的
    onShareTimeline: function () {
        return {
            title: this.haloWxShareData.title,
            query: {},
            imageUrl: this.haloWxShareData.imageUrl,
        }
    },
    methods: {
        // 设置分享信息（需要在页面调用）
        fnSetWxShareConfig(config = {}) {
            let currentRoutes = getCurrentPages(); // 获取当前打开过的页面路由数组
            let currentRoute = currentRoutes[currentRoutes.length - 1].route; //获取当前页面路由(分销思路，分享者点开使用的小程序将获取到分享者的id)
            let sharePath = currentRoutes
            if (config.params) {
                const URLParams = config.params ? jsonToUrlParams2(config.params) : {};
                sharePath += URLParams
            }
            let _config = Object.assign({}, {
                path: sharePath,
                copyLink: HaloTokenConfig.BASE_API,
                query: {}
            }, config)

            uni.$tm.vx.commit('setWxShare', _config);
        }
    }
}
